package com.xueyi.game.backend.service;


import com.xueyi.game.backend.entity.dto.*;
import com.xueyi.game.backend.entity.vo.BaseSelectVo;
import com.xueyi.game.backend.entity.vo.FindRoleListVo;

import java.util.List;

/**
 * @authoer: hxs
 * @createDate: 2022/11/9 09:38
 * @description: 角色管理业务
 */
public interface IBackendRoleService {
    /**
     * 获取角色列表
     *
     * @param findRoleListDto
     * @return
     * @author hxs
     */
    FindRoleListVo findRoleList(FindRoleListDto findRoleListDto);

    /**
     * 新增角色
     *
     * @param addOrUpdateRoleDto
     * @return
     * @author hxs
     */
    void addRole(AddOrUpdateRoleDto addOrUpdateRoleDto);

    /**
     * 修改角色
     *
     * @param addOrUpdateRoleDto
     * @return
     * @author hxs
     */
    void updateRole(AddOrUpdateRoleDto addOrUpdateRoleDto);

    /**
     * 修改角色的状态
     *
     * @param changeRoleStatusReq
     * @return
     * @author hxs
     */
    void changeRoleStatus(ChangeRoleStatusDto changeRoleStatusReq);

    /**
     * 为角色关联权限
     *
     * @param bindJurisdictionForRoleReq
     */
    void bindJurisdictionForRole(BindJurisdictionForRoleDto bindJurisdictionForRoleReq);


    /**
     * 通过角色id获取该角色的权限id列表
     *
     * @param findJurisdictionListByRoleIdDto
     * @return
     * @author hxs
     */
    String findJurisdictionListByRoleId(FindJurisdictionListByRoleIdDto findJurisdictionListByRoleIdDto);

    /**
     * 获取所有的角色（下拉菜单用）
     *
     * @return
     * @author hxs
     */
    List<BaseSelectVo> findAllRoleSelectVo();

    /**
     * 清除角色的缓存
     */
    void removeCacheAfterChangeRole(String roleIds);


}
